package com.solution.admin.message.dao;

import java.util.List;
import java.util.Map;

import com.solution.admin.message.entity.MessageEntity;
import com.solution.common.dao.BaseDao;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;

/**
 * 消息管理DAO接口
 * 
 * @author xu_cc
 * @date 2017-11-22 15:18:58
 */
public interface MessageDao extends BaseDao<MessageEntity> {
	
	/**
	 * 标识消息已读
	 * 
	 * @param param
	 * @return int
	 * @author xu_cc
	 * @throws Exception
	 *             exception
	 * @Date 创建时间：2017年11月24日 下午3:29:40
	 */
	public int doReadMessage(Map<String, Object> param);

	/**
	 * 微信端获取用户所有信息
	 * 
	 * @param param
	 * @return List<MessageEntity>
	 * @author xu_cc
	 * @throws Exception
	 *             exception
	 * @Date 创建时间：2017年11月24日 下午3:05:14
	 */
	public List<MessageEntity> getWxMessageList(Map<String, Object> param);

	/**
	 * 保存消息管理
	 * 
	 * @param messageEntity
	 * @return
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public long saveMessage(MessageEntity messageEntity);

	/**
	 * 分页查询消息管理信息
	 * 
	 * @param pageParam
	 *            分页对象
	 * @param message
	 *            分页参数
	 * @return PageBean 分页参数及数据
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public PageBean listMessagePage(PageParam pageParam, Map<String, Object> param);

	/**
	 * 更新消息管理
	 * 
	 * @param messageEntity
	 * @return
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public int updateMessage(MessageEntity messageEntity);

	/**
	 * 删除消息管理
	 * 
	 * @param id
	 * @return
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public int deleteMessageById(Long id);

	/**
	 * 根据消息管理类型获取消息管理
	 * 
	 * @param param
	 * @return
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public List<MessageEntity> listMessage(Map<String, Object> param);

	/**
	 * 查询最新的一条系统消息
	 * @param param
	 * @return
	 */
	public MessageEntity getLastMessage(String receiveType);
}
